#ifndef _MODULE_ENUMERATOR_H_
#define _MODULE_ENUMERATOR_H_

#include "handle.hpp"

#include <tlhelp32.h>

#include <optional>

namespace windows
{

class module_enumerator
{
public:
    explicit module_enumerator() noexcept;

    std::optional<MODULEENTRY32> first() const noexcept;
    std::optional<MODULEENTRY32> next() const noexcept;

private:
    const handle process_snapshot;
};

} // namespace windows

#endif
